#include "sys.h"

#ifdef USE_FULL_ASSERT
//当编译提示出错的时候此函数用来报告错误的文件和所在行
// file：指向源文件
// line：指向在文件中的行数
void assert_failed(uint8_t* file, uint32_t line) {
    while (1) {
    }
}
#endif

// THUMB指令不支持汇编内联
//采用如下方法实现执行汇编指令WFI
//采用如下方法实现执行汇编指令WFI  
#if 0
__asm void WFI_SET(void)
{
	WFI;		  
}
//关闭所有中断(但是不包括fault和NMI中断)
__asm void INTX_DISABLE(void)
{
	CPSID   I
	BX      LR	  
}
//开启所有中断
__asm void INTX_ENABLE(void)
{
	CPSIE   I
	BX      LR  
}
//设置栈顶地址
//addr:栈顶地址
__asm void MSR_MSP(u32 addr) 
{
	MSR MSP, r0 			//set Main Stack value
	BX r14
}
#endif

void INTX_DISABLE(void)
{
	__asm ("CPSID   I");
	__asm ("BX      LR");
}
//开启所有中断
void INTX_ENABLE(void)
{
	__asm ("CPSIE   I");
	__asm ("BX      LR  ");
}
//设置栈顶地址
//addr:栈顶地址
void MSR_MSP(u32 addr) 
{
	__asm ("MSR MSP, r0 ");			//set Main Stack value
	__asm ("BX r14");
}